"""
序列化：把对象变成字符串或字节串
反序列化：把字符串或字节串还原成对象
json: object ---> str / str ---> object ---> 跨语言
pickle: object ---> bytes / bytes ---> object ---> Python
"""
import json
import pickle

from example04 import Dept


# class DeptJsonEncoder(json.JSONEncoder):
#
#     def default(self, o):
#         return o.__dict__


dept = Dept(110, '产品运营部', '昆明')
# dept = {'no': 110, 'name': '产品运营部', 'location': '昆明'}
# result = json.dumps(dept, cls=DeptJsonEncoder)
result = pickle.dumps(dept)
print(result)

data = b'\x80\x03cexample04\nDept\nq\x00)\x81q\x01}q\x02(X\x02\x00\x00\x00noq\x03KnX\x04\x00\x00\x00nameq\x04X\x0f\x00\x00\x00\xe4\xba\xa7\xe5\x93\x81\xe8\xbf\x90\xe8\x90\xa5\xe9\x83\xa8q\x05X\x08\x00\x00\x00locationq\x06X\x06\x00\x00\x00\xe6\x98\x86\xe6\x98\x8eq\x07ub.'
dept2 = pickle.loads(data)
print(dept2)
